1
Misteri Koin 10 Sen dan Realitas Titik Mengambang
AI017Lesson 3
00:00

Gesekan dasar dalam fisika komputasi muncul karena komputer merepresentasikan angka nyata menggunakan matematika titik mengambang biner. Berbeda dengan pemikiran manusia yang menggunakan basis-10 (desimal), perangkat keras menyimpan nilai dalam basis-2 (biner). Hal ini menghasilkan sebuah abstraksi bocor: pecahan desimal sederhana seperti 0,1 tidak dapat direpresentasikan secara tepat.

1. Realitas Titik Mengambang

Go menyediakan dua tipe utama untuk angka nyata: float32 dan float64. Saat menggunakan sintaks deklarasi variabel pendek seperti price := 0,0, Go secara default menggunakan float64. Tipe-tipe ini adalah pendekatan dari kenyataan, bukan nilai matematis yang eksak.

0,1 + 0,1 = ?Gopher: "Kenapa hasilnya bukan 0,2?"0,0001100110011...

2. Misteri Angka 0,1

Dalam basis-10, $1/3$ menghasilkan desimal berulang tak hingga ($0,333...$). Dalam basis-2, nilai $0,1$ menghasilkan pecahan berulang tak hingga. Karena memori komputer terbatas, pecahan ini dipotong, mengakibatkan kesalahan kumulatif. Misalnya, $0,1 + 0,2$ menghasilkan $0,30000000000000004$ alih-alih tepat $0,3$.

Peringatan: Jangan pernah gunakan == untuk membandingkan angka titik mengambang di gerbang logika, karena ketidaksesuaian mikroskopis ini akan menyebabkan perbandingan gagal.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>